package com.cgnpc.cuddemo.workbench.application;

import com.cgnpc.cud.auth.vo.Menu;

import java.util.List;
import java.util.Set;

public interface IPermissonApplication {
    /**
     * hseadmin
     */
    public static final String ROLE_NAME_HSEADMIN = "hseadmin";

    /**********************************
     * 用途说明: 获取菜单
     * 参数说明 strings
     * 返回值说明:
     ***********************************/
    public Set<Menu> selectMenus(String s, String... strings);

    /**********************************
     * 用途说明:获取用户的菜单权限(树形)
     * 参数说明
     * 返回值说明:
     ***********************************/
    public List<Menu> selectMenusTree(String s, String... strings);

    /**********************************
     * 用途说明:获取读写权限
     * 参数说明
     * 返回值说明:
     ***********************************/
    public Set<Menu> getWritePermission(String s, String... strings);

    /**********************************
     * 用途说明: 获取角色
     * 参数说明 strings
     * 返回值说明:
     ***********************************/
    public Set<String> selectRoles(String s, String... strings);

    /**********************************
     * 用途说明: 是否具有某个角色
     * 参数说明 roleName
     * 返回值说明:
     ***********************************/
    public boolean hasRoles(String roleName);

    /**********************************
     * 用途说明: 获取资源
     * 参数说明 strings
     * 返回值说明:
     ***********************************/
    public Set<String> selectPermissions(String s, String... strings);

    /**********************************
     * 用途说明: 将菜单转为树形
     * 参数说明 menus
     * 返回值说明:
     ***********************************/
    public List<Menu> menuToTree(Set<Menu> menus);
}